<?php

# -- DÉBUT NOTE DE LICENCE -------------------------------------
#
# Ce fichier fait partie de Clicpage.
#
# Copyright (c) 2010 Francois (www.clicpage.net)
# Distribué selon les termes de la licence GPL version 2.0.
# Consultez le fichier LICENCE ou
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- FIN NOTE DE LICENCE ---------------------------------------

class cpListeUtilisateurs extends cpListe
{

	protected $rechercher;
	protected $groupe_id;
	
	public $lien_sort;
	
	protected $params = array();
	
	# Liens
	public $module;
	
	public $lienPseudo;
	public $lienEmail;
	public $lienGroupe;
	
	public function __construct($core)
	{
		
		parent::__construct($core, 'utilisateurs');
	
		$this->groupe_id = 'ignorer';
				
		$this->module = 'utilisateurs';
		$this->lienPseudo = '<a href="index.php?module=modifierUtilisateur&utilisateur_id=%1$s">%2$s</a>';
		$this->lienEmail = '<a href="mailto:%2$s" title="'.__('Envoyer un message électronique').'">%2$s</a>';
		$this->lienGroupe = '<a href="index.php?module=modifierGroupeUtilisateurs&groupe_id=%2$s">%3$s</a>';

		$this->lien_sort = 'index.php?module='.$this->module.'&rechercher=%1$s&groupe=%2$s&sort=%3$s';
		
		$this->initColonnes(array(
			'case'			=> array('&nbsp;'),
			'pseudo'		=> array(__('Pseudonyme'), 'U.utilisateur_pseudo ASC', 'U.utilisateur_pseudo DESC'),
			'email'			=> array(__('Adresse électronique'), 'U.utilisateur_email ASC', 'U.utilisateur_email DESC'),
			'groupe'		=> array(__('Groupe'), 'G.groupe_nom ASC', 'G.groupe_nom DESC'),
			'statut'		=> array(__('Statut'), 'U.utilisateur_statut ASC', 'U.utilisateur_statut DESC')
		), 'pseudo-asc');

		$this->params['order'] = $this->getOrdreSQL();
		
	}
	
	public function filtres()
	{
		
		if(!empty($_GET['rechercher'])) {
			$this->rechercher = rawurldecode($_GET['rechercher']);
			$rechercherEsc = $this->core->con->escape($this->rechercher);
			$this->params['conditions_supp'] = array('('.
				"U.`utilisateur_login` LIKE '%".$rechercherEsc."%' OR ".
				"U.`utilisateur_pseudo` LIKE '%".$rechercherEsc."%' OR ".
				"U.`utilisateur_prenom` LIKE '%".$rechercherEsc."%' OR ".
				"U.`utilisateur_nom` LIKE '%".$rechercherEsc."%' OR ".
				"U.`utilisateur_email` LIKE '%".$rechercherEsc."%'".
			')');
		}
		
		if(!empty($_GET['groupe']) && is_numeric($_GET['groupe'])) {
			$this->groupe_id = $this->params['groupe_id'] = (integer) $_GET['groupe'];
		}

	}
	
	public function afficherFiltres()
	{
		
		$url_liens_groupe = 'index.php?module='.$this->module.'&rechercher='.urlencode($this->rechercher).'&groupe=';		
		$groupes = $this->core->site->getGroupesUtilisateurs(array(), CP_GET_RS);
		
		$html = 
		'<form id="filtres" class="filtres_tableau" action="index.php" method="GET">'.
		form::hidden('module', $this->module).
		'<ul class="choix_horizontal">';
		
		
		$html.= ($this->groupe_id != 'ignorer') ?
			'<li><a href="'.$url_liens_groupe.'ignorer">'.__('Tout').'</a> |</li>' :
			'<li>'.__('Tout').' |</li>';
		
		while($groupes->fetch())
		{
			$fin = $groupes->isEnd() ? '' : ' |';
			
			$html.= ($this->groupe_id != $groupes->groupe_id) ?
			'<li><a href="'.$url_liens_groupe.$groupes->groupe_id.'">'.html::escapeHTML($groupes->groupe_nom).'</a>'.$fin.'</li>' :
			'<li>'.html::escapeHTML($groupes->groupe_nom).$fin.'</li>';
		}
		
		
		$html.=
		'</ul>'.
		'<p class="rechercher">'.
			form::field('rechercher', 30, 100, html::escapeHTML($this->rechercher)).
			'<input type="submit" value="'.__('Chercher dans les utilisateurs').'" />'.
		'</p>'.
		'</form>';
			
		return $html;

	}
	
	public function afficherListe($page,$nb_par_page,$enclose_block='')
	{

		$counter = $this->core->site->getUtilisateurs($this->params, CP_GET_COMPTEUR);

		if ($counter->f(0) == 0) {
			return '<div class="msg msgInfo">'.__('Pas d\'utilisateur').'</div>';
		}
		
		
		$pager = new pager($page,$counter->f(0),$nb_par_page,10);
		$pager->html_prev = $this->html_prev;
		$pager->html_next = $this->html_next;
		$pager->var_page = 'page';
		$this->params['limit'] = array($pager->index_start,$nb_par_page);
		$this->params['avec_groupe'] = true;
		
		$html_block .=
		'<table id="listeUtilisateurs">'.
		$this->getEnteteHTML(sprintf($this->lien_sort, str_replace('%', '%%', urlencode($this->rechercher)), $this->groupe_id, '%s'), 'listeUtilisateurs_').
		'<tbody>'.
			'%s'.
		'</tbody>'.
		'</table>'.
		'<p class="options-liste">'.
			'<a href="#" id="selectionner_tout">'.__('sélectionner tout').'</a> - '.
			'<a href="#" id="inverser_selection">'.__('inverser la sélection').'</a>'.
		'</p>';
		
		if ($enclose_block) {
			$html_block = sprintf($enclose_block,$html_block);
		}
		
		$blocks = explode('%s',$html_block);
		
		$html = $blocks[0];
		
		$utilisateurs = $this->core->site->getUtilisateurs($this->params, CP_GET_RS);
		
		while($utilisateurs->fetch()) {
			$html.=$this->ligneUtilisateur($utilisateurs);	
		}
		
		$html.= $blocks[1].
			'<p class="pages">'.__('Page(s) :').' '.$pager->getLinks().'</p>';
			
		
		return $html;
	
	}
	
	protected function ligneUtilisateur($utilisateur)
	{
		
		switch($utilisateur->utilisateur_statut):
		
			case CP_UTILISATEUR_TEMP:
				$statut = '<img src="images/16/jaune.png" alt="'.__('En attente de validation').'" />';
			break;
			
			case CP_UTILISATEUR_DESACTIVE:
				$statut = '<img src="images/16/rouge.png" alt="'.__('Désactivé').'" />';
			break;
			
			default:
				$statut = '<img src="images/16/vert.png" alt="'.__('Activé').'" />';
			break;
		
		endswitch;
		
		return
		'<tr id="utilisateur_'.(integer) $utilisateur->utilisateur_id.'">'.
			'<td class="listeUtilisateurs_case">'.
				form::checkbox('utilisateurs[]', (integer) $utilisateur->utilisateur_id, false).
			'</td>'.
			'<td>'.
				sprintf($this->lienPseudo, (integer) $utilisateur->utilisateur_id, html::escapeHTML($utilisateur->utilisateur_pseudo)).
			'</td>'.
			'<td>'.
				sprintf($this->lienEmail, (integer) $utilisateur->utilisateur_id, html::escapeHTML($utilisateur->utilisateur_email)).
			'</td>'.
			'<td>'.
				sprintf($this->lienGroupe, (integer) $utilisateur->utilisateur_id, (integer) $utilisateur->groupe_id, html::escapeHTML($utilisateur->groupe_nom)).
			'</td>'.
			'<td class="listeUtilisateurs_statut">'.
				$statut.
			'</td>'.
		'</tr>';
		
	}
	
}

?>